package com.core.service;

import com.common.model.entity.SysUser;
import com.common.model.vo.SysUserVO;

import java.util.Set;
import javax.servlet.http.HttpServletRequest;

/**
 * @author zsh
 * @description 针对表【sys_user(系统用户表)】的数据库操作Service
 * @createDate 2025-10-18 22:43:01
 */
public interface SysUserService {

  /**
   * 用户注册
   *
   * @param userName 用户账户
   * @param userPassword 用户密码
   * @param confirmPassword 确认密码
   * @return 新用户 id
   */
  long userRegister(String userName, String userPassword, String confirmPassword);

  /**
   * 用户登录
   *
   * @param userName 用户账户
   * @param userPassword 用户密码
   * @param request
   * @return 脱敏后的用户信息
   */
  SysUserVO userLogin(String userName, String userPassword, Integer isisRememberMe,HttpServletRequest request);

  /**
   * 获取当前登录用户
   *
   * @param request
   * @return
   */
  SysUserVO getCurrentLoginUser(HttpServletRequest request);

  /**
   * 是否为管理员
   *
   * @param request
   * @return
   */
  boolean isAdmin(HttpServletRequest request);

  /** 用户注销 */
  boolean userLogout(String userName);

  SysUser getUserByUserName(String userName); // 查询用户

  Set<String> getRoleByUserName(String userName); // 查询角色

  Set<String> getPermissionsByUserName(String userName); // 查询权限
}
